System.register([], function (_export) {
"use strict";
var BehaviorInstance;
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
return {
setters: [],
execute: function () {
BehaviorInstance = (function () {
function BehaviorInstance(behavior, executionContext, instruction) {
_classCallCheck(this, BehaviorInstance);
this.behavior = behavior;
this.executionContext = executionContext;
this.isAttached = false;
var observerLookup = behavior.observerLocator.getOrCreateObserversLookup(executionContext),
handlesBind = behavior.handlesBind,
attributes = instruction.attributes,
boundProperties = this.boundProperties = [],
properties = behavior.properties,
i,
ii;
behavior.ensurePropertiesDefined(executionContext, observerLookup);
for (i = 0, ii = properties.length; i < ii; ++i) {
properties[i].initialize(executionContext, observerLookup, attributes, handlesBind, boundProperties);
}
}
BehaviorInstance.prototype.created = function created(context) {
if (this.behavior.handlesCreated) {
this.executionContext.created(context);
}
};
BehaviorInstance.prototype.bind = function bind(context) {
var skipSelfSubscriber = this.behavior.handlesBind,
boundProperties = this.boundProperties,
i,
ii,
x,
observer,
selfSubscriber;
for (i = 0, ii = boundProperties.length; i < ii; ++i) {
x = boundProperties[i];
observer = x.observer;
selfSubscriber = observer.selfSubscriber;
observer.publishing = false;
if (skipSelfSubscriber) {
observer.selfSubscriber = null;
}
x.binding.bind(context);
observer.call();
observer.publishing = true;
observer.selfSubscriber = selfSubscriber;
}
if (skipSelfSubscriber) {
this.executionContext.bind(context);
}
if (this.view) {
this.view.bind(this.executionContext);
}
};
BehaviorInstance.prototype.unbind = function unbind() {
var boundProperties = this.boundProperties,
i,
ii;
if (this.view) {
this.view.unbind();
}
if (this.behavior.handlesUnbind) {
this.executionContext.unbind();
}
for (i = 0, ii = boundProperties.length; i < ii; ++i) {
boundProperties[i].binding.unbind();
}
};
BehaviorInstance.prototype.attached = function attached() {
if (this.isAttached) {
return;
}
this.isAttached = true;
if (this.behavior.handlesAttached) {
this.executionContext.attached();
}
if (this.view) {
this.view.attached();
}
};
BehaviorInstance.prototype.detached = function detached() {
if (this.isAttached) {
this.isAttached = false;
if (this.view) {
this.view.detached();
}
if (this.behavior.handlesDetached) {
this.executionContext.detached();
}
}
};
return BehaviorInstance;
})();
_export("BehaviorInstance", BehaviorInstance);
}
};
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9FaXNlbmJlcmdFZmZlY3QvRG9jdW1lbnRzL0dpdEh1Yi9UaGUgRHVyYW5kYWwgUHJvamVjdC9hdXJlbGlhL3RlbXBsYXRpbmcvc3JjL2JlaGF2aW9yLWluc3RhbmNlLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztNQUFhLGdCQUFnQjs7Ozs7OztBQUFoQixzQkFBZ0I7QUFDaEIsaUJBREEsZ0JBQWdCLENBQ2YsUUFBUSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBQztnQ0FEekMsZ0JBQWdCOztBQUV6QixjQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztBQUN6QixjQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7QUFDekMsY0FBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7O0FBRXhCLGNBQUksY0FBYyxHQUFHLFFBQVEsQ0FBQyxlQUFlLENBQUMsMEJBQTBCLENBQUMsZ0JBQWdCLENBQUM7Y0FDdEYsV0FBVyxHQUFHLFFBQVEsQ0FBQyxXQUFXO2NBQ2xDLFVBQVUsR0FBRyxXQUFXLENBQUMsVUFBVTtjQUNuQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFO2NBQzNDLFVBQVUsR0FBRyxRQUFRLENBQUMsVUFBVTtjQUNoQyxDQUFDO2NBQUUsRUFBRSxDQUFDOztBQUVWLGtCQUFRLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLEVBQUUsY0FBYyxDQUFDLENBQUM7O0FBRW5FLGVBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEdBQUcsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFDO0FBQzdDLHNCQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1dBQ3RHO1NBQ0Y7O0FBbEJVLHdCQUFnQixXQW9CM0IsT0FBTyxHQUFBLGlCQUFDLE9B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QkFBRyxJQUFJLENBQUMsSUFBSSxFQUFDO0FBQ1gsa0JBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7YUFDdEI7O0FBRUQsZ0JBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLEVBQUM7QUFDL0Isa0JBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUNsQztXQUNGO1NBQ0Y7O2VBdEdVLGdCQUFnQjs7O2tDQUFoQixnQkFBZ0IiLCJmaWxlIjoiL1VzZXJzL0Vpc2VuYmVyZ0VmZmVjdC9Eb2N1bWVudHMvR2l0SHViL1RoZSBEdXJhbmRhbCBQcm9qZWN0L2F1cmVsaWEvdGVtcGxhdGluZy9zcmMvYmVoYXZpb3ItaW5zdGFuY2UuanMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY2xhc3MgQmVoYXZpb3JJbnN0YW5jZSB7XG4gIGNvbnN0cnVjdG9yKGJlaGF2aW9yLCBleGVjdXRpb25Db250ZXh0LCBpbnN0cnVjdGlvbil7XG4gICAgdGhpcy5iZWhhdmlvciA9IGJlaGF2aW9yO1xuICAgIHRoaXMuZXhlY3V0aW9uQ29udGV4dCA9IGV4ZWN1dGlvbkNvbnRleHQ7XG4gICAgdGhpcy5pc0F0dGFjaGVkID0gZmFsc2U7XG5cbiAgICB2YXIgb2JzZXJ2ZXJMb29rdXAgPSBiZWhhdmlvci5vYnNlcnZlckxvY2F0b3IuZ2V0T3JDcmVhdGVPYnNlcnZlcnNMb29rdXAoZXhlY3V0aW9uQ29udGV4dCksXG4gICAgICAgIGhhbmRsZXNCaW5kID0gYmVoYXZpb3IuaGFuZGxlc0JpbmQsXG4gICAgICAgIGF0dHJpYnV0ZXMgPSBpbnN0cnVjdGlvbi5hdHRyaWJ1dGVzLFxuICAgICAgICBib3VuZFByb3BlcnRpZXMgPSB0aGlzLmJvdW5kUHJvcGVydGllcyA9IFtdLFxuICAgICAgICBwcm9wZXJ0aWVzID0gYmVoYXZpb3IucHJvcGVydGllcyxcbiAgICAgICAgaSwgaWk7XG5cbiAgICBiZWhhdmlvci5lbnN1cmVQcm9wZXJ0aWVzRGVmaW5lZChleGVjdXRpb25Db250ZXh0LCBvYnNlcnZlckxvb2t1cCk7XG5cbiAgICBmb3IoaSA9IDAsIGlpID0gcHJvcGVydGllcy5sZW5ndGg7IGkgPCBpaTsgKytpKXtcbiAgICAgIHByb3BlcnRpZXNbaV0uaW5pdGlhbGl6ZShleGVjdXRpb25Db250ZXh0LCBvYnNlcnZlckxvb2t1cCwgYXR0cmlidXRlcywgaGFuZGxlc0JpbmQsIGJvdW5kUHJvcGVydGllcyk7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlZChjb250ZXh0KXtcbiAgICBpZih0aGlzLmJlaGF2aW9yLmhhbmRsZXNDcmVhdGVkKXtcbiAgICAgIHRoaXMuZXhlY3V0aW9uQ29udGV4dC5jcmVhdGVkKGNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIGJpbmQoY29udGV4dCl7XG4gICAgdmFyIHNraXBTZWxmU3Vic2NyaWJlciA9IHRoaXMuYmVoYXZpb3IuaGFuZGxlc0JpbmQsXG4gICAgICAgIGJvdW5kUHJvcGVydGllcyA9IHRoaXMuYm91bmRQcm9wZXJ0aWVzLFxuICAgICAgICBpLCBpaSwgeCwgb2JzZXJ2ZXIsIHNlbGZTdWJzY3JpYmVyO1xuXG4gICAgZm9yKGkgPSAwLCBpaSA9IGJvdW5kUHJvcGVydGllcy5sZW5ndGg7IGkgPCBpaTsgKytpKXtcbiAgICAgIHggPSBib3VuZFByb3BlcnRpZXNbaV07XG4gICAgICBvYnNlcnZlciA9IHgub2JzZXJ2ZXI7XG4gICAgICBzZWxmU3Vic2NyaWJlciA9IG9ic2VydmVyLnNlbGZTdWJzY3JpYmVyO1xuICAgICAgb2JzZXJ2ZXIucHVibGlzaGluZyA9IGZhbHNlO1xuXG4gICAgICBpZihza2lwU2VsZlN1YnNjcmliZXIpe1xuICAgICAgICBvYnNlcnZlci5zZWxmU3Vic2NyaWJlciA9IG51bGw7XG4gICAgICB9XG5cbiAgICAgIHguYmluZGluZy5iaW5kKGNvbnRleHQpO1xuICAgICAgb2JzZXJ2ZXIuY2FsbCgpO1xuXG4gICAgICBvYnNlcnZlci5wdWJsaXNoaW5nID0gdHJ1ZTtcbiAgICAgIG9ic2VydmVyLnNlbGZTdWJzY3JpYmVyID0gc2VsZlN1YnNjcmliZXI7XG4gICAgfVxuXG4gICAgaWYoc2tpcFNlbGZTdWJzY3JpYmVyKXtcbiAgICAgIHRoaXMuZXhlY3V0aW9uQ29udGV4dC5iaW5kKGNvbnRleHQpO1xuICAgIH1cblxuICAgIGlmKHRoaXMudmlldyl7XG4gICAgICB0aGlzLnZpZXcuYmluZCh0aGlzLmV4ZWN1dGlvbkNvbnRleHQpO1xuICAgIH1cbiAgfVxuXG4gIHVuYmluZCgpe1xuICAgIHZhciBib3VuZFByb3BlcnRpZXMgPSB0aGlzLmJvdW5kUHJvcGVydGllcyxcbiAgICAgICAgaSwgaWk7XG5cbiAgICBpZih0aGlzLnZpZXcpe1xuICAgICAgdGhpcy52aWV3LnVuYmluZCgpO1xuICAgIH1cblxuICAgIGlmKHRoaXMuYmVoYXZpb3IuaGFuZGxlc1VuYmluZCl7XG4gICAgICB0aGlzLmV4ZWN1dGlvbkNvbnRleHQudW5iaW5kKCk7XG4gICAgfVxuXG4gICAgZm9yKGkgPSAwLCBpaSA9IGJvdW5kUHJvcGVydGllcy5sZW5ndGg7IGkgPCBpaTsgKytpKXtcbiAgICAgIGJvdW5kUHJvcGVydGllc1tpXS5iaW5kaW5nLnVuYmluZCgpO1xuICAgIH1cbiAgfVxuXG4gIGF0dGFjaGVkKCl7XG4gICAgaWYodGhpcy5pc0F0dGFjaGVkKXtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmlzQXR0YWNoZWQgPSB0cnVlO1xuXG4gICAgaWYodGhpcy5iZWhhdmlvci5oYW5kbGVzQXR0YWNoZWQpe1xuICAgICAgdGhpcy5leGVjdXRpb25Db250ZXh0LmF0dGFjaGVkKCk7XG4gICAgfVxuXG4gICAgaWYodGhpcy52aWV3KXtcbiAgICAgIHRoaXMudmlldy5hdHRhY2hlZCgpO1xuICAgIH1cbiAgfVxuXG4gIGRldGFjaGVkKCl7XG4gICAgaWYodGhpcy5pc0F0dGFjaGVkKXtcbiAgICAgIHRoaXMuaXNBdHRhY2hlZCA9IGZhbHNlO1xuXG4gICAgICBpZih0aGlzLnZpZXcpe1xuICAgICAgICB0aGlzLnZpZXcuZGV0YWNoZWQoKTtcbiAgICAgIH1cblxuICAgICAgaWYodGhpcy5iZWhhdmlvci5oYW5kbGVzRGV0YWNoZWQpe1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbkNvbnRleHQuZGV0YWNoZWQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ== |